package com.designpattern.builder;

public class Main {


    /**
     * 建造者模式
     * 当在创建复杂对象的算法 应该独立于他的组成部分 和 组装部分
     * @param args
     */
    public static void main(String[] args) {
        // 创建构建的对象
        NonToxicSnakeBuilder nonToxicSnakeBuilder = new NonToxicSnakeBuilder();
        PoisonSnakeBuilder poisonSnakeBuilder = new PoisonSnakeBuilder();
        // 获取创建者
        CreateDirect createDirect = new CreateDirect();
        // 构建对象，客户端不需要知道构建过程
        createDirect.collect(nonToxicSnakeBuilder);
        Snake animal = nonToxicSnakeBuilder.getResult();
        animal.show();

        createDirect.collect(poisonSnakeBuilder);
        Snake poisonSnake = poisonSnakeBuilder.getResult();
        poisonSnake.show();
    }
}
